﻿using System;
using System.Threading.Tasks;
using UnityEngine;

namespace Plugins.FormicArch.Core.AssetsCenter
{
    public interface IAssetLoaderHelper
    {
        T LoadAsset<T>(string assetName);

        Task<T> LoadAssetAsync<T>(string assetName);
        void LoadAssetAsync<T>(string assetName, Action<T> callback);
        GameObject Instantiate(string assetName);

        Task<GameObject> InstantiateAsync(string assetName);
        void InstantiateAsync(string assetName, Action<GameObject> callback);
        bool ReleaseInstance(GameObject obj);
    }
}